package org.jeecgframework.web.system.pojo.base;

import javax.persistence.*;

import org.codehaus.jackson.annotate.JsonIgnore;
import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.JoinFormula;
import org.jeecgframework.poi.excel.annotation.Excel;

/**   
 * @Title: Entity
 * @Description: 联系表
 * @author onlineGenerator
 * @date 2016-04-15 16:48:01
 * @version V1.0   
 *
 */
@Entity
@Table(name = "zy_contacts", schema = "")
@SuppressWarnings("serial")
public class ZyContactsEntity implements java.io.Serializable {
	/**主键*/
	private java.lang.String id;
	/**用户表ID*/
	@Excel(name="用户表ID")
	private TSBaseUser tsBaseUser;
	/**所属机构或影院*/
	@Excel(name="所属影院")
	private ZyCinemaEntity belongCinema;
	/**所属机构或影院*/
	@Excel(name="所属机构")
	private TSDepart belongOrg;
	/**名字*/
	@Excel(name="名字")
	private java.lang.String name;
	/**手机1*/
	@Excel(name="手机1")
	private java.lang.String cellphone1;
	/**手机2*/
	@Excel(name="手机2")
	private java.lang.String cellphone2;
	/**固话*/
	@Excel(name="固话")
	private java.lang.String telephone;
	/**传真*/
	@Excel(name="传真")
	private java.lang.String fax;
	/**性别*/
	@Excel(name="性别")
	private Boolean gender;
	/**状态*/
	@Excel(name="状态")
	private java.lang.String state;
	/**email*/
	@Excel(name="email")
	private java.lang.String email;
	/**职位*/
	@Excel(name="职位")
	private java.lang.String position;
	/**来源*/
	@Excel(name="来源")
	private java.lang.String source;
	/**联系业务*/
	@Excel(name="联系业务")
	private java.lang.String conBusiness;
	/**联系人类型*/
	@Excel(name="联系人类型")
	private java.lang.String type;
	/**联系人类型*/
	@Excel(name="注册影院")//微信用户
	private java.lang.String cinemaName;

	/**是否经过微信高级用户认证*/
	@Excel(name="是否经过微信高级用户认证")
	private java.lang.String authentication;

	/**
	 * 联系人级别，只做显示用
	 */
	private String authenticationUser;

	/**是否删除*/
	@Excel(name="是否删除")
	java.lang.String isDelete;
	
	/**创建人*/
	@Excel(name="创建人")
	private java.lang.String createName;
	/**创建人登录名*/
	@Excel(name="创建人登录名")
	private java.lang.String createBy;
	/**创建时间*/
	@Excel(name="创建时间")
	private java.util.Date createDate;
	/**更新人*/
	@Excel(name="更新人")
	private java.lang.String updateName;
	/**更新人登录名*/
	@Excel(name="更新人登录名")
	private java.lang.String updateBy;
	/**更新时间*/
	@Excel(name="更新时间")
	private java.util.Date updateDate;
	
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  主键
	 */
	@Id
	@GeneratedValue(generator = "paymentableGenerator")
	@GenericGenerator(name = "paymentableGenerator", strategy = "uuid")
	@Column(name ="ID",nullable=false,length=36)
	public java.lang.String getId(){
		return this.id;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  主键
	 */
	public void setId(java.lang.String id){
		this.id = id;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  用户表ID
	 */
    @JsonIgnore
	@ManyToOne(cascade=CascadeType.DETACH,fetch=FetchType.EAGER)
    @JoinColumn(name="base_id")
	public TSBaseUser getTsBaseUser() {
		return tsBaseUser;
	}
	
	public void setTsBaseUser(TSBaseUser tsBaseUser) {
		this.tsBaseUser = tsBaseUser;
	}
	/**
	 *方法: 取得ZyCinemaEntity
	 *@return: ZyCinemaEntity  所属影院
	 */
    @JsonIgnore
	@ManyToOne(cascade=CascadeType.DETACH,fetch=FetchType.LAZY)
    @JoinColumn(name="BELONG_CINEMA")
	public ZyCinemaEntity getBelongCinema(){
		return this.belongCinema;
	}

	/**
	 *方法: 设置ZyCinemaEntity
	 *@param: ZyCinemaEntity  所属影院
	 */
	public void setBelongCinema(ZyCinemaEntity belongCinema){
		this.belongCinema = belongCinema;
	}
	/**
	 *方法: 取得TSDepart
	 *@return: TSDepart  所属机构
	 */
    @JsonIgnore
	@ManyToOne(cascade=CascadeType.DETACH,fetch=FetchType.EAGER)
    @JoinColumn(name="BELONG_ORG")
	public TSDepart getBelongOrg(){
		return this.belongOrg;
	}

	/**
	 *方法: 设置TSDepart
	 *@param: TSDepart 所属机构
	 */
	public void setBelongOrg(TSDepart belongOrg){
		this.belongOrg = belongOrg;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  名字
	 */
	@Column(name ="NAME",nullable=true,length=50)
	public java.lang.String getName(){
		return this.name;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  名字
	 */
	public void setName(java.lang.String name){
		this.name = name;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  手机1
	 */
	@Column(name ="CELLPHONE1",nullable=true,length=20)
	public java.lang.String getCellphone1(){
		return this.cellphone1;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  手机1
	 */
	public void setCellphone1(java.lang.String cellphone1){
		this.cellphone1 = cellphone1;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  手机2
	 */
	@Column(name ="CELLPHONE2",nullable=true,length=20)
	public java.lang.String getCellphone2(){
		return this.cellphone2;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  手机2
	 */
	public void setCellphone2(java.lang.String cellphone2){
		this.cellphone2 = cellphone2;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  固话
	 */
	@Column(name ="TELEPHONE",nullable=true,length=20)
	public java.lang.String getTelephone(){
		return this.telephone;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  固话
	 */
	public void setTelephone(java.lang.String telephone){
		this.telephone = telephone;
	}
	
	
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  传真
	 */
	@Column(name ="FAX",nullable=true,length=32)
	public java.lang.String getFax() {
		return fax;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  传真
	 */
	public void setFax(java.lang.String fax) {
		this.fax = fax;
	}

	/**
	 *方法: 取得Boolean
	 *@return: Boolean  性别
	 */
	@Column(name ="GENDER",nullable=true,length=1)
	public Boolean getGender(){
		return this.gender;
	}

	/**
	 *方法: 设置Boolean
	 *@param: Boolean  性别
	 */
	public void setGender(Boolean gender){
		this.gender = gender;
	}
	/**
	 *方法: 取得java.lang.Integer
	 *@return: java.lang.Integer  状态
	 */
	@Column(name ="STATE",nullable=true,length=10)
	public java.lang.String getState(){
		return this.state;
	}

	/**
	 *方法: 设置java.lang.Integer
	 *@param: java.lang.Integer  状态
	 */
	public void setState(java.lang.String state){
		this.state = state;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  email
	 */
	@Column(name ="EMAIL",nullable=true,length=32)
	public java.lang.String getEmail(){
		return this.email;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  email
	 */
	public void setEmail(java.lang.String email){
		this.email = email;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  职位
	 */
	@Column(name ="POSITION",nullable=true,length=50)
	public java.lang.String getPosition(){
		return this.position;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  职位
	 */
	public void setPosition(java.lang.String position){
		this.position = position;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  来源
	 */
	@Column(name ="SOURCE",nullable=true,length=36)
	public java.lang.String getSource(){
		return this.source;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  来源
	 */
	public void setSource(java.lang.String source){
		this.source = source;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  联系业务
	 */
	@Column(name ="CON_BUSINESS",nullable=true,length=20)
	public java.lang.String getConBusiness(){
		return this.conBusiness;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  联系业务
	 */
	public void setConBusiness(java.lang.String conBusiness){
		this.conBusiness = conBusiness;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  联系人类型
	 */
	@Column(name ="TYPE",nullable=true,length=20)
	public java.lang.String getType(){
		return this.type;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  联系人类型
	 */
	public void setType(java.lang.String type){
		this.type = type;
	}

	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  注册影院（微信用户）
	 */
	@Column(name ="CINEMA_NAME",nullable=true,length=255)
	public String getCinemaName() {
		return cinemaName;
	}

	public void setCinemaName(String cinemaName) {
		this.cinemaName = cinemaName;
	}

	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  是否经过微信高级用户认证
	 */
	public java.lang.String getAuthentication() {
		return authentication;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  是否经过微信高级用户认证
	 */
	public void setAuthentication(java.lang.String authentication) {
		this.authentication = authentication;
	}

	/**
	 *方法: 取得String
	 *@return: String  是否删除
	 */
	@Column(name ="IS_DELETE",nullable=true,length=50)
	public java.lang.String getIsDelete() {
		return isDelete;
	}

	/**
	 *方法: 设置String
	 *@param: String  是否删除
	 */
	public void setIsDelete(java.lang.String isDelete) {
		this.isDelete = isDelete;
	}
	
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  创建人
	 */
	@Column(name ="CREATE_NAME",nullable=true,length=50)
	public java.lang.String getCreateName(){
		return this.createName;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  创建人
	 */
	public void setCreateName(java.lang.String createName){
		this.createName = createName;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  创建人登录名
	 */
	@Column(name ="CREATE_BY",nullable=true,length=50)
	public java.lang.String getCreateBy(){
		return this.createBy;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  创建人登录名
	 */
	public void setCreateBy(java.lang.String createBy){
		this.createBy = createBy;
	}
	/**
	 *方法: 取得java.util.Date
	 *@return: java.util.Date  创建时间
	 */
	@Column(name ="CREATE_DATE",nullable=true,length=32)
	public java.util.Date getCreateDate(){
		return this.createDate;
	}

	/**
	 *方法: 设置java.util.Date
	 *@param: java.util.Date  创建时间
	 */
	public void setCreateDate(java.util.Date createDate){
		this.createDate = createDate;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  更新人
	 */
	@Column(name ="UPDATE_NAME",nullable=true,length=50)
	public java.lang.String getUpdateName(){
		return this.updateName;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  更新人
	 */
	public void setUpdateName(java.lang.String updateName){
		this.updateName = updateName;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  更新人登录名
	 */
	@Column(name ="UPDATE_BY",nullable=true,length=50)
	public java.lang.String getUpdateBy(){
		return this.updateBy;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  更新人登录名
	 */
	public void setUpdateBy(java.lang.String updateBy){
		this.updateBy = updateBy;
	}
	/**
	 *方法: 取得java.util.Date
	 *@return: java.util.Date  更新时间
	 */
	@Column(name ="UPDATE_DATE",nullable=true,length=32)
	public java.util.Date getUpdateDate(){
		return this.updateDate;
	}

	/**
	 *方法: 设置java.util.Date
	 *@param: java.util.Date  更新时间
	 */
	public void setUpdateDate(java.util.Date updateDate){
		this.updateDate = updateDate;
	}

	@Transient
	public String getAuthenticationUser() {
		return authenticationUser;
	}

	public void setAuthenticationUser(String authenticationUser) {
		this.authenticationUser = authenticationUser;
	}
}
